package com.umpay.dto.merAccess.req.withdrawal;

import com.umpay.annotation.Pattern;
import com.umpay.dto.merAccess.req.CommonReq;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.NotNull;


/* ******************  类说明  *********************
 * class       :  MemberPaymentReq
 * @author     :  ncc
 * @date       :  2018年7月12日 上午10:32:52
 * @version    :  1.0  
 * description :  会员余额付款请求类
 * @see        :                        
 * ************************************************/   
public class MemberPaymentReq extends CommonReq {

	@NotEmpty(message = "商户订单号不能为空")
	@Pattern(message = "商户订单号格式不正确")
	private String order_id;//	商户订单号	变长20	商户订单号支持数字、英文字母，其他字符不建议使用  长度4至20位
	@NotEmpty(message = "商户订单日期不能为空")
	@Pattern(message = "商户订单日期格式不正确")
	private String mer_date;//	商户订单日期	定长8	商户生成订单的日期，格式YYYYMMDD
	@NotEmpty(message = "联动会员用户号")
	@Pattern(message = "联动会员用户号")
	private String user_id;//	变长20，
	@NotEmpty(message = "会员类型不能为空")
	@Pattern(message = "会员类型格式不正确")
	private String user_type;//	会员类型	定长1	  1：个人   2：个体 3：企业
	@NotNull(message = "收款方账户属性不能为空")
	@Pattern(message = "收款方账户属性格式不正确")
	private String recv_bank_acc_pro;//	收款方账户属性	定长1	0：对私，1：对公	Y
	@NotEmpty(message = "卡号不能为空")
	@Pattern(message="卡号格式不正确")
	private String card_id;//	卡号	变长256	GBK编码后使用联动公钥进行RSA加密，最后使用BASE64编码	Y
	/*@NotEmpty(message = "银行编号不能为空")*/
	@Pattern(message="银行编号格式不正确")
	private String gate_id;//	银行编号	变长8		Y
	@NotEmpty(message = "开卡单位名称不能为空")
	@Pattern(message="开卡单位名称格式不正确")
	private String bank_account_name;//	银行账户名称	变长128	GBK编码后使用联动公钥进行RSA加密，最后使用BASE64编码	对私付款：个人银行开户姓名	对公付款：企业银行开户名称	Y
	@Pattern(message="开户行支行全称格式不正确")
	private String bank_branch_name;//	开户行支行全称	变长60	对公付款必传	例：中国民生银行金融街支行	N
	@Pattern(message="收款方手机号格式不正确")
	private String mobile_id;//	收款方手机号	定长 11		N
	@Pattern(message="开户行所在省格式不正确")
	private String bank_prov_name;//	开户行所在省	变长128	（接口预留字段，目前无需关注）	N
	@Pattern(message="开户行所在市格式不正确")
	private String bank_area_name;//	开户行所在市	变长128	（接口预留字段，目前无需关注）	N
	@Pattern(message = "账户类型格式不正确")
	private String acc_type;//	账户类型	定长3 208:对公现金账户 209:对私现金账户
	@NotEmpty(message = "付款金额不能为空")
	@Pattern(message = "付款金额格式不正确")
	private String amount;//	提现金额	变长13	单位为分
	@Pattern(message = "服务器异步通知页面路径格式不正确")
	protected String notify_url;//服务器异步通知页面路径
	@NotEmpty(message = "备注信息不能为空")
	@Pattern(message = "备注信息格式不正确")
	protected String remark;//备注信息	变长64
	
	public String getOrder_id() {
		return order_id;
	}
	public void setOrder_id(String order_id) {
		this.order_id = order_id;
	}
	public String getMer_date() {
		return mer_date;
	}
	public void setMer_date(String mer_date) {
		this.mer_date = mer_date;
	}
	public String getUser_id() {
		return user_id;
	}
	public void setUser_id(String user_id) {
		this.user_id = user_id;
	}
	public String getUser_type() {
		return user_type;
	}
	public void setUser_type(String user_type) {
		this.user_type = user_type;
	}
	public String getAcc_type() {
		return acc_type;
	}
	public void setAcc_type(String acc_type) {
		this.acc_type = acc_type;
	}
	public String getAmount() {
		return amount;
	}
	public void setAmount(String amount) {
		this.amount = amount;
	}
	public String getNotify_url() {
		return notify_url;
	}
	public void setNotify_url(String notify_url) {
		this.notify_url = notify_url;
	}
	
	public String getRemark() {
		return remark;
	}
	public void setRemark(String remark) {
		this.remark = remark;
	}
	public String getRecv_bank_acc_pro() {
		return recv_bank_acc_pro;
	}
	public void setRecv_bank_acc_pro(String recv_bank_acc_pro) {
		this.recv_bank_acc_pro = recv_bank_acc_pro;
	}
	public String getCard_id() {
		return card_id;
	}
	public void setCard_id(String card_id) {
		this.card_id = card_id;
	}
	public String getGate_id() {
		return gate_id;
	}
	public void setGate_id(String gate_id) {
		this.gate_id = gate_id;
	}
	public String getBank_account_name() {
		return bank_account_name;
	}
	public void setBank_account_name(String bank_account_name) {
		this.bank_account_name = bank_account_name;
	}
	public String getBank_branch_name() {
		return bank_branch_name;
	}
	public void setBank_branch_name(String bank_branch_name) {
		this.bank_branch_name = bank_branch_name;
	}
	public String getMobile_id() {
		return mobile_id;
	}
	public void setMobile_id(String mobile_id) {
		this.mobile_id = mobile_id;
	}
	public String getBank_prov_name() {
		return bank_prov_name;
	}
	public void setBank_prov_name(String bank_prov_name) {
		this.bank_prov_name = bank_prov_name;
	}
	public String getBank_area_name() {
		return bank_area_name;
	}
	public void setBank_area_name(String bank_area_name) {
		this.bank_area_name = bank_area_name;
	}
	@Override
	public String toString() {
		return "MemberPaymentReq [order_id=" + order_id + ", mer_date=" + mer_date + ", user_id=" + user_id
				+ ", user_type=" + user_type + ", recv_bank_acc_pro=" + recv_bank_acc_pro + ", card_id=" + card_id
				+ ", gate_id=" + gate_id + ", bank_account_name=" + bank_account_name + ", bank_branch_name="
				+ bank_branch_name + ", mobile_id=" + mobile_id + ", bank_prov_name=" + bank_prov_name
				+ ", bank_area_name=" + bank_area_name + ", acc_type=" + acc_type + ", amount=" + amount
				+ ", notify_url=" + notify_url + ", remark=" + remark + "]";
	}
}
